﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;

namespace RAgency.Admin
{
    public partial class ACrtUser : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void AddButton_Click(object sender, EventArgs args)
        {
            try
            {
                MembershipUser newUser = Membership.CreateUser(login.Text, password.Text, email.Text);
                Roles.AddUserToRole(login.Text, "manager");
                ErrLabel.Text = "Пользователь успешно добавлен.";
            }
            catch (MembershipCreateUserException e)
            {
                ErrLabel.Text = GetErrorMessage(e.StatusCode);
            }
            catch (HttpException e)
            {
                ErrLabel.Text = e.Message;
            }
            finally
            {
                login.Text = "";
                email.Text = "";
            }
        }

        public string GetErrorMessage(MembershipCreateStatus status)
        {
            switch (status)
            {
                case MembershipCreateStatus.DuplicateUserName:
                    return "Имя пользователя уже занято.";

                case MembershipCreateStatus.DuplicateEmail:
                    return "Данный e-mail закреплён за другим пользователем.";

                case MembershipCreateStatus.InvalidPassword:
                    return "Данный пароль не подходит для регистрации.";

                case MembershipCreateStatus.InvalidEmail:
                    return "Данный e-mail не подходит для регистрации.";

                case MembershipCreateStatus.InvalidUserName:
                    return "Данное имя пользователя не подходит для регистрации.";

                case MembershipCreateStatus.UserRejected:
                    return "Процесс создания пользователя остановлен.";

                default:
                    return "Неизвестная ошибка.";
            }
        }
    }
}